package com.yuanfeng.userms.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户详细信息表
 * @TableName user_info_detail
 */
@TableName(value ="user_info_detail")
@Data
public class UserInfoDetaileEntity implements Serializable {
    /**
     * 用户id
     */
    @TableId
    private String userId;

    /**
     * 头像地址
     */
    private String userAvatar;

    /**
     * 性别 0保密1男2女
     */
    private Boolean userGender;

    /**
     * 真实姓名
     */
    private String userTruename;

    /**
     * 生日(YYYY-MM-DD)
     */
    private String userBirth;

    /**
     * 用户签名
     */
    private String userSign;

    /**
     * 注册时间
     */
    private Long userRegTime;

    /**
     * 注册IP
     */
    private String userRegIp;

    /**
     * 获取手机验证码记录(获取次数,上次获取时间) 
     */
    private String userPhoneCodeStats;

    /**
     * 是否已手机认证 0 否 1是
     */
    private Integer userMobileVerify;

    /**
     * 省份id
     */
    private Integer userProvinceid;

    /**
     * 城市id
     */
    private Integer userCityid;

    /**
     * 地区id
     */
    private Integer userAreaid;

    /**
     * 身份证
     */
    private String userIdcard;

    /**
     * 证件类型  1身份证 2护照 3军官证
     */
    private String userIdentityType;

    /**
     * 0未审核1待审核2审核成功3审核失败
     */
    private Integer userIdentityStatu;

    /**
     * 证件照反面
     */
    private String userIdentityFontLogo;

    /**
     * 证件照正面
     */
    private String userIdentityFaceLogo;

    /**
     * 身份证有效期开始时间
     */
    private Date userIdentityStartTime;

    /**
     * 身份证有效期结束时间
     */
    private Date userIdentityEndTime;

    /**
     * 上级店铺ID 
     */
    private Integer userParentShopId;

    /**
     * 上级推广员ID 
     */
    private Integer userParentId;

    /**
     * 邀请注册的城市分站ID 
     */
    private Integer inviteSubsiteId;

    /**
     * 注册用户来源 1.pc;2.h5;3.小程序; 4:微信app 5：ios
     */
    private Integer userPlatform;

    /**
     * 用户经验
     */
    private Integer userGrade;

    /**
     * 是否参加蜂王计划0未参加 1参加
     */
    private Integer userQueenBee;

    /**
     * 蜂王等级0普通1幼蜂2蜜蜂3蜂王
     */
    private Integer beeGrade;

    /**
     * 创建者
     */
    private String createUser;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改人
     */
    private String updateUser;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 是否删除0:否;1:是
     */
    private Integer isDelete;

    /**
     * 版本号
     */
    private Integer sysVersion;

    /**
     * 时间戳
     */
    private Date ts;

    /**
     * 用户绑定店铺id
     */
    private Integer userBindShopId;

    /**
     * 用户绑定门店id
     */
    private Integer userBindStoreId;

    /**
     * 是否长期有效:1-是；0-否
     */
    private Integer validateLongTerm;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        UserInfoDetaileEntity other = (UserInfoDetaileEntity) that;
        return (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getUserAvatar() == null ? other.getUserAvatar() == null : this.getUserAvatar().equals(other.getUserAvatar()))
            && (this.getUserGender() == null ? other.getUserGender() == null : this.getUserGender().equals(other.getUserGender()))
            && (this.getUserTruename() == null ? other.getUserTruename() == null : this.getUserTruename().equals(other.getUserTruename()))
            && (this.getUserBirth() == null ? other.getUserBirth() == null : this.getUserBirth().equals(other.getUserBirth()))
            && (this.getUserSign() == null ? other.getUserSign() == null : this.getUserSign().equals(other.getUserSign()))
            && (this.getUserRegTime() == null ? other.getUserRegTime() == null : this.getUserRegTime().equals(other.getUserRegTime()))
            && (this.getUserRegIp() == null ? other.getUserRegIp() == null : this.getUserRegIp().equals(other.getUserRegIp()))
            && (this.getUserPhoneCodeStats() == null ? other.getUserPhoneCodeStats() == null : this.getUserPhoneCodeStats().equals(other.getUserPhoneCodeStats()))
            && (this.getUserMobileVerify() == null ? other.getUserMobileVerify() == null : this.getUserMobileVerify().equals(other.getUserMobileVerify()))
            && (this.getUserProvinceid() == null ? other.getUserProvinceid() == null : this.getUserProvinceid().equals(other.getUserProvinceid()))
            && (this.getUserCityid() == null ? other.getUserCityid() == null : this.getUserCityid().equals(other.getUserCityid()))
            && (this.getUserAreaid() == null ? other.getUserAreaid() == null : this.getUserAreaid().equals(other.getUserAreaid()))
            && (this.getUserIdcard() == null ? other.getUserIdcard() == null : this.getUserIdcard().equals(other.getUserIdcard()))
            && (this.getUserIdentityType() == null ? other.getUserIdentityType() == null : this.getUserIdentityType().equals(other.getUserIdentityType()))
            && (this.getUserIdentityStatu() == null ? other.getUserIdentityStatu() == null : this.getUserIdentityStatu().equals(other.getUserIdentityStatu()))
            && (this.getUserIdentityFontLogo() == null ? other.getUserIdentityFontLogo() == null : this.getUserIdentityFontLogo().equals(other.getUserIdentityFontLogo()))
            && (this.getUserIdentityFaceLogo() == null ? other.getUserIdentityFaceLogo() == null : this.getUserIdentityFaceLogo().equals(other.getUserIdentityFaceLogo()))
            && (this.getUserIdentityStartTime() == null ? other.getUserIdentityStartTime() == null : this.getUserIdentityStartTime().equals(other.getUserIdentityStartTime()))
            && (this.getUserIdentityEndTime() == null ? other.getUserIdentityEndTime() == null : this.getUserIdentityEndTime().equals(other.getUserIdentityEndTime()))
            && (this.getUserParentShopId() == null ? other.getUserParentShopId() == null : this.getUserParentShopId().equals(other.getUserParentShopId()))
            && (this.getUserParentId() == null ? other.getUserParentId() == null : this.getUserParentId().equals(other.getUserParentId()))
            && (this.getInviteSubsiteId() == null ? other.getInviteSubsiteId() == null : this.getInviteSubsiteId().equals(other.getInviteSubsiteId()))
            && (this.getUserPlatform() == null ? other.getUserPlatform() == null : this.getUserPlatform().equals(other.getUserPlatform()))
            && (this.getUserGrade() == null ? other.getUserGrade() == null : this.getUserGrade().equals(other.getUserGrade()))
            && (this.getUserQueenBee() == null ? other.getUserQueenBee() == null : this.getUserQueenBee().equals(other.getUserQueenBee()))
            && (this.getBeeGrade() == null ? other.getBeeGrade() == null : this.getBeeGrade().equals(other.getBeeGrade()))
            && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateUser() == null ? other.getUpdateUser() == null : this.getUpdateUser().equals(other.getUpdateUser()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getIsDelete() == null ? other.getIsDelete() == null : this.getIsDelete().equals(other.getIsDelete()))
            && (this.getSysVersion() == null ? other.getSysVersion() == null : this.getSysVersion().equals(other.getSysVersion()))
            && (this.getTs() == null ? other.getTs() == null : this.getTs().equals(other.getTs()))
            && (this.getUserBindShopId() == null ? other.getUserBindShopId() == null : this.getUserBindShopId().equals(other.getUserBindShopId()))
            && (this.getUserBindStoreId() == null ? other.getUserBindStoreId() == null : this.getUserBindStoreId().equals(other.getUserBindStoreId()))
            && (this.getValidateLongTerm() == null ? other.getValidateLongTerm() == null : this.getValidateLongTerm().equals(other.getValidateLongTerm()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getUserAvatar() == null) ? 0 : getUserAvatar().hashCode());
        result = prime * result + ((getUserGender() == null) ? 0 : getUserGender().hashCode());
        result = prime * result + ((getUserTruename() == null) ? 0 : getUserTruename().hashCode());
        result = prime * result + ((getUserBirth() == null) ? 0 : getUserBirth().hashCode());
        result = prime * result + ((getUserSign() == null) ? 0 : getUserSign().hashCode());
        result = prime * result + ((getUserRegTime() == null) ? 0 : getUserRegTime().hashCode());
        result = prime * result + ((getUserRegIp() == null) ? 0 : getUserRegIp().hashCode());
        result = prime * result + ((getUserPhoneCodeStats() == null) ? 0 : getUserPhoneCodeStats().hashCode());
        result = prime * result + ((getUserMobileVerify() == null) ? 0 : getUserMobileVerify().hashCode());
        result = prime * result + ((getUserProvinceid() == null) ? 0 : getUserProvinceid().hashCode());
        result = prime * result + ((getUserCityid() == null) ? 0 : getUserCityid().hashCode());
        result = prime * result + ((getUserAreaid() == null) ? 0 : getUserAreaid().hashCode());
        result = prime * result + ((getUserIdcard() == null) ? 0 : getUserIdcard().hashCode());
        result = prime * result + ((getUserIdentityType() == null) ? 0 : getUserIdentityType().hashCode());
        result = prime * result + ((getUserIdentityStatu() == null) ? 0 : getUserIdentityStatu().hashCode());
        result = prime * result + ((getUserIdentityFontLogo() == null) ? 0 : getUserIdentityFontLogo().hashCode());
        result = prime * result + ((getUserIdentityFaceLogo() == null) ? 0 : getUserIdentityFaceLogo().hashCode());
        result = prime * result + ((getUserIdentityStartTime() == null) ? 0 : getUserIdentityStartTime().hashCode());
        result = prime * result + ((getUserIdentityEndTime() == null) ? 0 : getUserIdentityEndTime().hashCode());
        result = prime * result + ((getUserParentShopId() == null) ? 0 : getUserParentShopId().hashCode());
        result = prime * result + ((getUserParentId() == null) ? 0 : getUserParentId().hashCode());
        result = prime * result + ((getInviteSubsiteId() == null) ? 0 : getInviteSubsiteId().hashCode());
        result = prime * result + ((getUserPlatform() == null) ? 0 : getUserPlatform().hashCode());
        result = prime * result + ((getUserGrade() == null) ? 0 : getUserGrade().hashCode());
        result = prime * result + ((getUserQueenBee() == null) ? 0 : getUserQueenBee().hashCode());
        result = prime * result + ((getBeeGrade() == null) ? 0 : getBeeGrade().hashCode());
        result = prime * result + ((getCreateUser() == null) ? 0 : getCreateUser().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateUser() == null) ? 0 : getUpdateUser().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getIsDelete() == null) ? 0 : getIsDelete().hashCode());
        result = prime * result + ((getSysVersion() == null) ? 0 : getSysVersion().hashCode());
        result = prime * result + ((getTs() == null) ? 0 : getTs().hashCode());
        result = prime * result + ((getUserBindShopId() == null) ? 0 : getUserBindShopId().hashCode());
        result = prime * result + ((getUserBindStoreId() == null) ? 0 : getUserBindStoreId().hashCode());
        result = prime * result + ((getValidateLongTerm() == null) ? 0 : getValidateLongTerm().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", userId=").append(userId);
        sb.append(", userAvatar=").append(userAvatar);
        sb.append(", userGender=").append(userGender);
        sb.append(", userTruename=").append(userTruename);
        sb.append(", userBirth=").append(userBirth);
        sb.append(", userSign=").append(userSign);
        sb.append(", userRegTime=").append(userRegTime);
        sb.append(", userRegIp=").append(userRegIp);
        sb.append(", userPhoneCodeStats=").append(userPhoneCodeStats);
        sb.append(", userMobileVerify=").append(userMobileVerify);
        sb.append(", userProvinceid=").append(userProvinceid);
        sb.append(", userCityid=").append(userCityid);
        sb.append(", userAreaid=").append(userAreaid);
        sb.append(", userIdcard=").append(userIdcard);
        sb.append(", userIdentityType=").append(userIdentityType);
        sb.append(", userIdentityStatu=").append(userIdentityStatu);
        sb.append(", userIdentityFontLogo=").append(userIdentityFontLogo);
        sb.append(", userIdentityFaceLogo=").append(userIdentityFaceLogo);
        sb.append(", userIdentityStartTime=").append(userIdentityStartTime);
        sb.append(", userIdentityEndTime=").append(userIdentityEndTime);
        sb.append(", userParentShopId=").append(userParentShopId);
        sb.append(", userParentId=").append(userParentId);
        sb.append(", inviteSubsiteId=").append(inviteSubsiteId);
        sb.append(", userPlatform=").append(userPlatform);
        sb.append(", userGrade=").append(userGrade);
        sb.append(", userQueenBee=").append(userQueenBee);
        sb.append(", beeGrade=").append(beeGrade);
        sb.append(", createUser=").append(createUser);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateUser=").append(updateUser);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", isDelete=").append(isDelete);
        sb.append(", sysVersion=").append(sysVersion);
        sb.append(", ts=").append(ts);
        sb.append(", userBindShopId=").append(userBindShopId);
        sb.append(", userBindStoreId=").append(userBindStoreId);
        sb.append(", validateLongTerm=").append(validateLongTerm);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}